package com.ht.pms.core.dao;

import com.ht.pms.core.dto.dict.DictParamsDto;
import com.ht.pms.core.dto.send.*;
import com.ht.pms.core.dto.tempalte.Template;
import com.ht.pms.core.dto.upload.UpLoadTemp;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface SalaryEmailDao {
    List<DictParamsDto> queryEamilTemplate(int templateType);

    Map<String,Object> createSendSalaryData(String sql);

    List<SendSalaryTimeDto> querySalaryTime(String batchCode, int sendType);

    List<UpLoadTemp> queryUploadTemp(String batchCode);

    void saveSendLog(NoticeEmailRecordDto noticeRecordSend);

    List<SendBaseDto> findAllSalaryBase(String batchCode,String tableName);

    List<NoticeEmailRecordDto> findNoticRecordSend(String batchCode, String jobCode, int sendType);

    void updateNoticeRecordIsUsable(NoticeEmailRecordDto noticeRecordSend);

    List<NoticeSendDto> findNoticeSendList(String batchCode, int sendType);

    void saveNoticeSendDto(NoticeSendDto noticeSendDto);

    List<SalaryAccessDto> queryAccessSend(String jobCode,String batchCode,int sendType,String code,int type);


    List<SendBaseDto> findOneSalaryEmail(List<String> jobCode, String batchCode,String tableName);


    void sendRecall(String batchCode,int sendType);

    void confirmSalaryData(int sendType, String batchCode, String jobCode,int type);

    void updateNoticeIsUsable(String batchCode, String jobCode, int sendType);

    void updateNoticeIsUsableAll(String batchCode, int sendType);

    void updateRecordSendState(String tableName,String batchCode, String jobCode, int i);

    List<NoticeEmailRecordDto> findBatchCode(String batchCode);

    int countSendNumber(String batchCode, Integer state, String tableName);

    void updateRecordSendStateById(String tableName, Integer id, int state,String emailType);

    void updateEndTime(String batchCode,String endTime);

    List<SendDataCountVo> selectSendData(String batchCode, String tableName);

    Map<String,Object> isFirstSendEmail(String jobCode,String batchCode);
}
